/*
 * 业务公共处理方法
 * @Author: elvis.lam
 * @Date: 2018-07-31 11:19:24
 * @Last Modified by: elvis.lam
 * @Last Modified time: 2018-08-22 11:21:47
 */

import imageService from './image.utils'

export default {
  /**
   * 阿里云图片裁剪
   *
   * @see image.utils
   * @param  {String} url     图片url
   * @param  {Object} size    {w: xx, h: xx} 图片尺寸大小 w和h最少填一个
   * @param  {String} type    裁剪类型，默认：SHORT_SIDE_SCALE_MIDDLE_CLIP
   * @param  {String} format  格式化类型
   * @return {String} url     裁剪后的图片url
   */
  tailor({url = '', size = {}, type = '', format = 'jpg'}) {
    return `${url}?${imageService({ ...size, resize: type || 'SHORT_SIDE_SCALE_MIDDLE_CLIP', format })}`
  },
  /**
   * 规格转换
   *
   * @param   {array} 规格数组对象
   * @returns {array} 规格数组文本
   */
  formatSku: skuProps => {
    let skuText = new Array()
    if (skuProps && skuProps.length ) skuProps.forEach((value) => { skuText.push(value.valueText) })
    return skuText.length ? skuText.join(' ') : ''
  },
  /**
   * 时间格式化
   * @param time 操作的时间，Date类型
   * @param format 预设格式，如“yyyy-MM-dd”
   */
  stringifyDate(time, format = 'yyyy-MM-dd HH:mm:ss') {
    let year = time.getFullYear()
    let month = time.getMonth() + 1
    let date = time.getDate()
    let map = {
        yyyy: year,
        MM: ('0' + month).slice(-2),
        dd: ('0' + date).slice(-2),
        HH: ('0' + (time.getHours() || '00')).slice(-2),
        mm: ('0' + (time.getMinutes() || '00')).slice(-2),
        ss: ('0' + (time.getSeconds() || '00')).slice(-2)
    }
    return format.replace(/y+|M+|d+|H+|m+|s+/g, function(str) {
        return map[str]
    })
  }
}
